Архитектура К-подобного языка и его операционной среды

Я пришел к выводу, что лучше всего объединить весь базовый инструментарий минимального рантайма в виде синтаксических расширений, которые могут биндится как на языковые конструкции типа cond lambda app так и на слоты в контекстах. Языковое пространство включает в себя несколько синтаксическиз групп: Нетипизированное Лямбда Исчисление (нормальный порядок бета редукции), Векторный DSL (векторизируемый с MMX, SSE, пока без GPU бекенда), Хендлеры системы эффектов, а также рантайм операционной среды: доступ к очередям (цикличиским буферам — split/join, RAM — free/alloc), и управление CPS-программами (задачи, CPU — spawn,kill). Есть еще IO задачи, и Таймеры написанны чисто на Rust, в отличие от задач, написанных на К-образном языке О. O — здесь символ Enso, и символ кольцевой очереди. Все программы написанные на О могут паралелиться и исполняться на пуле потоков, жестко закрепленных на ядрах с помощью hwloc.

Несмотря на растовскую имплементацию — этот подход можно применять на любом языке. Так как во всех языках уже есть как минимум System F, есть везде стримы на комбинаторах, в Java, C#, Scala, Rust, C++11 вы можете писать в таком стиле и навешивать на фасад любые синтаксисы. В динамически типизированных языках все это выглядит компактнее, так как не нужна прелюдия типов. Но в динамически типизированных не получишь бесплатную векторизацию и прочие высокотехнологичные оптимизации.

O Интерпретатор растет:

$ cargo build Compiling kernel v0.11.0 (file:///Users/maxim/depot/voxoz/kernel) Finished debug [unoptimized + debuginfo] target(s) in 10.43 secs bash-3.2$ rlwrap ./target/debug/console init etc/boot.init Console is listening... > 2+3 Ok(Integer(5)) >

Кобминаторы стримов посортированы по каталогах (по группам синтаксических расширений):

$ tree -L 3 . ├── adverb │ ├── map.rs │ ├── fold.rs │ ├── over.rs │ ├── scan.rs │ ├── filter.rs │ ├── deltas.rs │ └── mod.rs ├── effect │ ├── read.rs │ ├── write.rs │ ├── recv.rs │ ├── send.rs │ ├── get.rs │ ├── set.rs │ └── mod.rs ├── interpreter.rs ├── lambda │ ├── call.rs │ ├── let.rs │ ├── cond.rs │ ├── lambda.rs │ └── mod.rs ├── mod.rs ├── stream.rs └── verb ├── mod.rs ├── mul.rs └── plus.rs